package com.service;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.entity.dto.BindTableCheckRuleDto;
import com.entity.dto.BindTableColumnCheckRuleDto;
import com.entity.dto.TableCheck;
import com.entity.vo.DataColumnCheckExportVo;
import java.util.List;

/**
 * 数据质量service
 */
public interface DataQualityService {

    /**
     * 表级规则-绑定
     */
    Boolean bindTableCheckRules(List<BindTableCheckRuleDto> ruleDtos);

    /**
     * 表级规则-绑定
     */
    Boolean bindColumnCheckRules(List<BindTableColumnCheckRuleDto> ruleDtos);

    /**
     * 空值率计算
     * @param values
     * @return
     */
    String doEmptyRate(List<Object> values);

    /**
     * 重复率计算
     * @param values
     * @return
     */
    String repeatRate(List<Object> values);

    /**
     * 长度是否合法
     * @param values
     * @return
     */
    String lengthOk(List<Object> values,Integer okLength);

    /**
     * 乱码条数
     * @param values
     * @return
     */
    String garbledCount(List<Object> values);

    /**
     * 值域范围分布
     * @param values
     * @return
     */
    String valueRange(List<Object> values);

    /**
     * 地址区域分布
     * @param values
     * @return
     */
    String addressRange(List<Object> values);

    void toCheck(List<DataColumnCheckExportVo> checkExportVoList, TableCheck e);

    @DS("MYSQL-PERSON")
    void personCheck(List<DataColumnCheckExportVo> checkExportVoList, TableCheck e);

}
